#ifndef _LIBNCURSESCPP_
#define _LIBNCURSESCPP_

#include <string>
#include <ncurses.h>

class Window {
private:
    WINDOW *window;

public:
    Window(int xSize, int ySize, int xPos, int yPos);
    ~Window();

    int getNumCols();
    int getNumRows();
    int getXPos();
    int getYPos();
    void refresh();
    void clear();
    void move(int xPos, int yPos);
    void print(std::string str);
    char getChar();
    std::string getString();
    void setAttribute(attr_t attribute);
    void removeAttribute(attr_t attribute);
    void setColor(int xPos, int yPos, int colorPair);
    void setRowColor(int row, int colorPair);
    void suspend();
    void resume();
};

void ncursesInit();
void ncursesEnd();

extern unsigned long long _colorPairCount_;
int getColorPair(int foreground, int background);

#endif

